
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

public class CaseTwo {
    /**
     * 用户请求的创建标签模型
     */
    @Data
    @AllArgsConstructor
    private class TagReqDTO {
        // 标签名字
        private String name;
        // 标签值：年龄
        private Integer age;
    }

    // 从DB中查询出来的已经存在的标签名
    private List<String> tagListFromDB;
    // 用户请求的标签列表
    private List<TagReqDTO> tagListFromReq;

    @Before
    public void init() {
        // 数据库中存在的标签名列表
        tagListFromDB = Lists.newArrayList("李四", "王五", "赵六");

        // 用户提交的
        tagListFromReq = Lists.newArrayList(
                new TagReqDTO("张三", 10),
                new TagReqDTO("李四", 30),
                new TagReqDTO("张三", 10)
        );
    }

    @Test
    public void distinctTest() {
        tagListFromReq.stream()
                .filter(tag -> !tagListFromDB.contains(tag.getName()))
                .distinct()
                .forEach(System.out::println);
    }
}
